import { IObserver } from "./IObserver";

export class Publish implements IObserver{

    observers:IObserver[] = []

    push(observer:IObserver){
        if(this.observers.indexOf(observer) === -1){
            this.observers.push(observer)
        }
    }

    /**
     * 删除观察者
     * @param observer 要删除的观察者对象
     */
    del(observer: IObserver){
        // 如果观察者列表中存在该观察者
        if(this.observers.indexOf(observer) !== -1){
            // 从观察者列表中移除该观察者
            this.observers.splice(this.observers.indexOf(observer), 1)
        }
    }

/**
 * 向所有观察者发送消息。
 * @param message 要发送的消息字符串。
 */
    sendOut(message: String): void {
        this.observers.forEach(observer=>{
            observer.sendOut(message)
        })
    }
}